package ec.edu.ucacue.siop.modelo.inventario;

import java.io.Serializable;
import java.util.Calendar;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import ec.edu.ucacue.siop.modelo.procesoNegocio.compra.Compra;
import ec.edu.ucacue.siop.modelo.procesoNegocio.produccion.Produccion;

/**
 * 
 * @author edgar
 * 
 * Especifica los detalles de la creacion del lote y las propiedades de los
 * materiales adquiridos o producidos
 */
@Entity
@Table(name="lote")
public class Lote implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private long id;
	private Calendar fechaCreacion;
	private float volumenInicial;
	private float volumenActual;
	private Compra compra;
	private Produccion produccion;
	private List<PropiedadLote> listaPropiedad;
	@Id
	@GeneratedValue
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public Calendar getFechaCreacion() {
		return fechaCreacion;
	}
	public void setFechaCreacion(Calendar fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}
	public float getVolumenInicial() {
		return volumenInicial;
	}
	public void setVolumenInicial(float volumenInicial) {
		this.volumenInicial = volumenInicial;
	}
	public float getVolumenActual() {
		return volumenActual;
	}
	public void setVolumenActual(float volumenActual) {
		this.volumenActual = volumenActual;
	}
	@ManyToOne
	public Compra getCompra() {
		return compra;
	}
	public void setCompra(Compra compra) {
		this.compra = compra;
	}
	@ManyToOne
	public Produccion getProduccion() {
		return produccion;
	}
	public void setProduccion(Produccion produccion) {
		this.produccion = produccion;
	}
	@OneToMany(mappedBy="lote", cascade=CascadeType.ALL)
	public List<PropiedadLote> getListaPropiedad() {
		return listaPropiedad;
	}
	public void setListaPropiedad(List<PropiedadLote> listaPropiedad) {
		this.listaPropiedad = listaPropiedad;
	} 
}
